analogRead() এবং analogWrite() এর ব্যবহার

Computer Programming - আরডুইনো (Arduino) Analog Input এবং Output (Analog Input and Output in Arduino) |
203
203

Arduino-তে analogRead() এবং analogWrite() ফাংশন দুটি গুরুত্বপূর্ণ ফাংশন যা বিভিন্ন প্রকল্পে সেন্সর থেকে ডেটা পড়া এবং আউটপুট হিসেবে এনালগ সিগন্যাল প্রেরণে ব্যবহৃত হয়। এগুলো বোর্ডের এনালগ পিনের মাধ্যমে কাজ করে।

analogRead() ফাংশন

analogRead() ফাংশন ব্যবহার করে Arduino-এর এনালগ পিন থেকে ইনপুট পড়া যায়। এটি সাধারণত সেন্সর ডেটা পড়ার জন্য ব্যবহৃত হয়, যেমন তাপমাত্রা সেন্সর, লাইট সেন্সর ইত্যাদি।

গঠন:

int sensorValue = analogRead(pin);
  • pin: যে এনালগ পিন থেকে ডেটা পড়তে হবে, যেমন A0, A1 ইত্যাদি।
  • ফলাফল: analogRead() ১০-বিটের মান প্রদান করে, যা ০ থেকে ১০২৩ পর্যন্ত হতে পারে। ০ মানে ০ ভোল্ট এবং ১০২৩ মানে রেফারেন্স ভোল্টেজ (সাধারণত ৫V)।

উদাহরণ:

void setup() {
  Serial.begin(9600); // সিরিয়াল মনিটর শুরু
}

void loop() {
  int sensorValue = analogRead(A0); // A0 পিন থেকে ডেটা পড়া
  Serial.println(sensorValue); // সেন্সর মান সিরিয়াল মনিটরে প্রিন্ট করা
  delay(500); // ৫০০ মিলিসেকেন্ড অপেক্ষা
}

analogWrite() ফাংশন

analogWrite() ফাংশন PWM (Pulse Width Modulation) সংকেত তৈরি করতে ব্যবহৃত হয়। এটি এনালগ আউটপুট তৈরি করার জন্য ব্যবহৃত হয়, যেমন LED-এর উজ্জ্বলতা নিয়ন্ত্রণ বা মোটরের গতি নিয়ন্ত্রণ।

গঠন:

analogWrite(pin, value);
  • pin: যে পিনে PWM সংকেত পাঠানো হবে। শুধুমাত্র PWM পিনগুলো (যেমন Arduino Uno-তে 3, 5, 6, 9, 10, 11) ব্যবহার করা যায়।
  • value: ৮-বিটের মান, যা ০ থেকে ২৫৫ পর্যন্ত হতে পারে। ০ মানে ০% ডিউটি সাইকেল (LOW), এবং ২৫৫ মানে ১০০% ডিউটি সাইকেল (HIGH)।

উদাহরণ:

void setup() {
  pinMode(9, OUTPUT); // পিন 9 আউটপুট হিসেবে কনফিগার করা
}

void loop() {
  analogWrite(9, 128); // পিন 9 এ ৫০% ডিউটি সাইকেল (LED হাফ ব্রাইটনেসে জ্বলবে)
  delay(1000); // ১ সেকেন্ড অপেক্ষা
  analogWrite(9, 255); // পিন 9 এ ১০০% ডিউটি সাইকেল (LED সম্পূর্ণ উজ্জ্বল)
  delay(1000); // ১ সেকেন্ড অপেক্ষা
}

ব্যবহারিক উদাহরণ: LDR সেন্সর থেকে ডেটা পড়া এবং LED নিয়ন্ত্রণ

void setup() {
  pinMode(9, OUTPUT); // LED পিন
  Serial.begin(9600); // সিরিয়াল মনিটর শুরু
}

void loop() {
  int sensorValue = analogRead(A0); // LDR সেন্সর থেকে ডেটা পড়া
  int brightness = map(sensorValue, 0, 1023, 0, 255); // সেন্সর মান ০-২৫৫ এ ম্যাপ করা

  analogWrite(9, brightness); // LED এর উজ্জ্বলতা নিয়ন্ত্রণ
  Serial.println(brightness); // উজ্জ্বলতা মান সিরিয়াল মনিটরে প্রিন্ট করা

  delay(100); // সামান্য বিলম্ব
}

ব্যাখ্যা:

  • map() ফাংশন: সেন্সর মানকে ০ থেকে ২৫৫ এর মধ্যে ম্যাপ করার জন্য ব্যবহৃত হয়, যাতে তা LED এর উজ্জ্বলতা নিয়ন্ত্রণে ব্যবহার করা যায়।
  • PWM সংকেত: analogWrite() আসলে একটি PWM সংকেত প্রেরণ করে, যা আউটপুট ভোল্টেজকে বিভিন্ন মাত্রায় পরিবর্তন করে।

ব্যবহারিক টিপস

  • সঠিক পিন নির্বাচন: analogRead() শুধুমাত্র এনালগ পিন (A0, A1, ইত্যাদি) থেকে ইনপুট পড়তে পারে। অন্যদিকে, analogWrite() শুধুমাত্র PWM পিনে ব্যবহার করা যায়।
  • PWM ব্যবহারের সীমাবদ্ধতা: PWM আউটপুট সরাসরি প্রকৃত এনালগ ভোল্টেজ নয়। এটি একটি ডিজিটাল সংকেত যা এনালগ আউটপুটের মত আচরণ করে।

analogRead() এবং analogWrite() ফাংশনগুলো Arduino-তে সেন্সর ডেটা পড়া এবং আউটপুট নিয়ন্ত্রণের জন্য অত্যন্ত গুরুত্বপূর্ণ। এগুলো বিভিন্ন প্রজেক্টে LED, মোটর, এবং অন্যান্য ডিভাইসের কার্যক্রম পরিচালনা করতে ব্যবহৃত হয়।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion